package common

import (
	"gopkg.in/yaml.v2"
	"io/ioutil"
	"log"
)

type Server struct {
	Port  int    `yaml:"port"`
	Ip    string `yaml:"ip"`
	Debug bool   `yaml:"debug"`
}

type ZLConfig struct {
	Ip      string `yaml:"ip"`
	ProxyIp string `yaml:"proxy-ip"`
	Port    int    `yaml:"port"`
	Secret  string `yaml:"secret"`
}

type Config struct {
	Server     Server   `yaml:"server"`
	Zlmediakit ZLConfig `yaml:"zlmediakit"`
}

var config *Config

var Secret = []byte("craftsoft_ztool") // Secret(盐) 用来加密解密

//PAGE_OFFSET 每页10条数据
var PAGE_OFFSET int32 = 10

// LoadConfig 加载配置文件
func LoadConfig(src string) error {
	content, err := ioutil.ReadFile(src)

	//如果没有文件，则创建文件
	if err != nil {
		log.Fatal("读取配置文件错误：%s", err)
		return err
	}

	config = &Config{}
	err = yaml.Unmarshal(content, &config)

	if err != nil {
		log.Fatal("读取服务配置错误：%s", err)
		return err
	}

	return nil
}

// GetConfig 获取配置
func (c *Config) GetConfig() *Config {
	return config
}

// GetServerConfig 获取系统配置
func GetServerConfig() *Server {
	return &config.Server
}

// GetZLConfig 获取zlmediakit配置
func GetZLConfig() *ZLConfig {
	return &config.Zlmediakit
}

// GetConfig /* GetConfig 读取配置文件*/
